reqwest-middleware 0.1.6

Wrapper around reqwest to allow for client middleware chains.
Documentation
This crate provides [`ClientWithMiddleware`], a wrapper around [`reqwest::Client`] with the ability to attach middleware which runs on every request. You'll want to instantiate [`ClientWithMiddleware`] using [`ClientBuilder`], then you can attach your middleware using [`with`], finalize it with [`build`] and from then on sending requests is the same as with reqwest: ``` use reqwest::{Client, Request, Response}; use reqwest_middleware::{ClientBuilder, Middleware, Next, Result}; use task_local_extensions::Extensions; struct LoggingMiddleware; #[async_trait::async_trait] impl Middleware for LoggingMiddleware { async fn handle( &self, req: Request, extensions: &mut Extensions, next: Next<'_>, ) -> Result { println!("Request started {:?}", req); let res = next.run(req, extensions).await; println!("Result: {:?}", res); res } } async fn run() { let reqwest_client = Client::builder().build().unwrap(); let client = ClientBuilder::new(reqwest_client) .with(LoggingMiddleware) .build(); let resp = client.get("https://truelayer.com").send().await.unwrap(); println!("TrueLayer page HTML: {}", resp.text().await.unwrap()); } ``` [`build`]: ClientBuilder::build [`ClientBuilder`]: ClientBuilder [`ClientWithMiddleware`]: ClientWithMiddleware [`with`]: ClientBuilder::with